class Descriptor {
  constructor() {}
  errorLog() {
    /**
     * @param target 对应 methods 这个对象
     * @param name 对应属性方法的名称
     * @param descriptor 对应属性方法的修饰符
     */
    return function(target, name, descriptor) {
      console.log(target, name, descriptor);
      const fn = descriptor.value;
      descriptor.value = function(...rest) {
        try {
          fn.call(this, ...rest);
        } catch (error) {
          console.error(`调用方法【${name}】后打印的错误日志`);
          console.error(error);
        }
      };
    };
  }
}
export const descriptor = new Descriptor();
